package pe.edu.upc.dew.grupo7.dao;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import pe.edu.upc.dew.grupo7.model.Usuario;

public class UsuarioDaoJdbc extends SimpleJdbcDaoSupport implements UsuarioDao {

	public Usuario getUsuarioPorDni(String dni) {
		return getSimpleJdbcTemplate()
				.queryForObject(
						"select dni, "
								+ "apellidoPaterno, apellidoMaterno,nombre, direccion, email, telefono, "
								+ "fechaNacimiento from Usuario where dni=? ",
						new BeanPropertyRowMapper<Usuario>(Usuario.class), dni);

	}

	public List<Usuario> getUsuarios() {
		return getSimpleJdbcTemplate()
				.query("select dni,  "
						+ "apellidoPaterno, apellidoMaterno,nombre, direccion, email, telefono, "
						+ "fechaNacimiento from Usuario",
						new BeanPropertyRowMapper<Usuario>(Usuario.class));

	}

	public List<Usuario> getUsuariosPorNombre(String nombre) {
		return getSimpleJdbcTemplate()
				.query("select dni,  "
						+ "apellidoPaterno, apellidoMaterno,nombre, direccion, email, telefono, "
						+ "fechaNacimiento from Usuario where nombre=? ",
						new BeanPropertyRowMapper<Usuario>(Usuario.class),
						nombre);

	}

	public void eliminar(String dni) {
		getSimpleJdbcTemplate().update("delete from usuario where dni=?", dni);
	}

	public void insertarUsuario(Usuario usuario) {
		getSimpleJdbcTemplate()
				.update("insert into usuario(dni,  apellidoPaterno, "
						+ "apellidoMaterno,nombre, direccion, email, telefono,fechaNacimiento) values(?,?,?,?,?,?,?,?)",
						usuario.getDni(), usuario.getApellidoPaterno(),
						usuario.getApellidoMaterno(), usuario.getNombre(),
						usuario.getDireccion(), usuario.getEmail(),
						usuario.getNumeroTelefonico(),
						usuario.getFechaDeNacimiento());

	}

	// public void updateUsuarioPorDni(String dni) {
	// UsuarioDao usuarioDao = null;
	// Usuario usuario = usuarioDao.getUsuarioPorDni(dni);
	// getSimpleJdbcTemplate()
	// .update("update  Usuario( apellidoPaterno=?, "
	// +
	// "apellidoMaterno=?,nombre=?, direccion=?, email=?, telefono=?,fechaNacimiento=? where dni=?) ",
	// usuario.getApellidoPaterno(),
	// usuario.getApellidoMaterno(), usuario.getNombre(),
	// usuario.getDireccion(), usuario.getEmail(),
	// usuario.getNumeroTelefonico(),
	// usuario.getFechaDeNacimiento(),usuario.getDni());

	// }
}
